/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.router.facade.result.receipt.info;

import info.peigen.hotpot.business.router.facade.enums.ChannelCode;
import info.peigen.hotpot.business.router.facade.enums.ReceiptType;
import info.peigen.hotpot.common.core.enums.Currency;
import info.peigen.hotpot.common.core.lang.money.Money;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * <b>(ReceiptInfo)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/9/6
 */
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class ReceiptInfo {
    /** 收款渠道 */
    ChannelCode channelCode;
    /** 交易记录Id */
    String      transLogId;
    /** 收款类型 */
    ReceiptType receiptType;
    /** 收款姓名 */
    String      payeeAccountName;
    /** 收款账号，如果是虚拟账号收款，则应该是备付金账号 */
    String      payeeAccountNo;
    /** 付款方户名 */
    String      payerAccountName;
    /** 付款方户号 */
    String      payerAccountNo;
    /** 交易金额 */
    Money       transAmount;
    /** 交易时间 */
    Date        transDate;
    /** 行内附言 */
    String      memo;
    /** 渠道返回的唯一ID */
    String      channelUniId;
    /** 收费金额 */
    Money       feeAmount;
    /** 收费金额币种 */
    Currency    feeCurrency;
}
